স্ট্রাকচার (Structure) C++ এর একটি ডেটা স্ট্রাকচার, যা বিভিন্ন ডেটা টাইপের ডেটা মেম্বার বা ভ্যারিয়েবলকে একত্রে সংরক্ষণ করতে ব্যবহৃত হয়। স্ট্রাকচার ব্যবহার করে একটি ডেটা টাইপের মধ্যে একাধিক ডেটা মেম্বারকে গ্রুপ করা যায়, যা কোডিংয়ে আরও সুবিধা প্রদান করে।
C++ এ struct
কীওয়ার্ড ব্যবহার করে স্ট্রাকচার ঘোষণা করা হয়। স্ট্রাকচার ঘোষণার মধ্যে বিভিন্ন ডেটা মেম্বার (যেমন ইন্টিজার, ফ্লোট, স্ট্রিং ইত্যাদি) সংজ্ঞায়িত করা হয়।
#include <iostream>
using namespace std;
// স্ট্রাকচার ঘোষণা
struct Person {
string name;
int age;
float height;
};
int main() {
// স্ট্রাকচার অবজেক্ট তৈরি
Person person1;
// ডেটা মেম্বার অ্যাসাইন করা
person1.name = "John Doe";
person1.age = 25;
person1.height = 5.9;
// ডেটা মেম্বার প্রদর্শন
cout << "Name: " << person1.name << endl;
cout << "Age: " << person1.age << endl;
cout << "Height: " << person1.height << endl;
return 0;
}
বর্ণনা:
Person
নামে একটি স্ট্রাকচার ঘোষণা করা হয়েছে, যাতে name
, age
, এবং height
নামে তিনটি ডেটা মেম্বার রয়েছে।person1
নামে Person
স্ট্রাকচারের একটি অবজেক্ট তৈরি করা হয়েছে এবং এতে মান অ্যাসাইন করে প্রদর্শন করা হয়েছে।স্ট্রাকচার ব্যবহার করে বিভিন্ন ডেটা টাইপ একসাথে সংরক্ষণ এবং পরিচালনা করা যায়। এটি বিশেষ করে যখন একাধিক ডেটা টাইপের ডেটা একত্রে সংরক্ষণ করতে হয় তখন কার্যকরী।
#include <iostream>
using namespace std;
struct Book {
string title;
string author;
int pages;
};
int main() {
Book book1 = {"The Catcher in the Rye", "J.D. Salinger", 277};
Book book2 = {"To Kill a Mockingbird", "Harper Lee", 324};
cout << "Book 1 Title: " << book1.title << ", Author: " << book1.author << ", Pages: " << book1.pages << endl;
cout << "Book 2 Title: " << book2.title << ", Author: " << book2.author << ", Pages: " << book2.pages << endl;
return 0;
}
বর্ণনা:
Book
নামের একটি স্ট্রাকচার তৈরি করা হয়েছে, যা title
, author
, এবং pages
ডেটা মেম্বার ধারণ করে।book1
এবং book2
নামে দুটি স্ট্রাকচার অবজেক্ট তৈরি করা হয়েছে এবং তাদের মান প্রদর্শন করা হয়েছে।স্ট্রাকচারকে প্যারামিটার হিসেবে ফাংশনে পাস করা যায়। এটি পাস-বাই-ভ্যালু এবং পাস-বাই-রেফারেন্স উভয়ভাবেই করা যেতে পারে।
#include <iostream>
using namespace std;
struct Person {
string name;
int age;
};
void displayPerson(Person p) {
cout << "Name: " << p.name << ", Age: " << p.age << endl;
}
int main() {
Person person1 = {"Alice", 30};
displayPerson(person1);
return 0;
}
#include <iostream>
using namespace std;
struct Person {
string name;
int age;
};
void modifyPerson(Person &p) {
p.age += 1; // বয়স এক বছর বৃদ্ধি করা
}
int main() {
Person person1 = {"Bob", 40};
cout << "Before modification: " << person1.age << endl;
modifyPerson(person1);
cout << "After modification: " << person1.age << endl;
return 0;
}
বর্ণনা:
Person
অবজেক্ট displayPerson()
ফাংশনে পাস করা হয়েছে এবং কেবলমাত্র এর কপি ব্যবহার করা হয়েছে।modifyPerson()
ফাংশনে Person
অবজেক্ট রেফারেন্স হিসেবে পাস করা হয়েছে এবং এর মান পরিবর্তন করা হয়েছে।স্ট্রাকচারের মধ্যে অ্যারে ব্যবহার করে একাধিক মান সংরক্ষণ করা যায়।
#include <iostream>
using namespace std;
struct Student {
string name;
int marks[5];
};
int main() {
Student student1 = {"Alice", {85, 90, 78, 88, 92}};
cout << "Student Name: " << student1.name << endl;
cout << "Marks: ";
for (int i = 0; i < 5; i++) {
cout << student1.marks[i] << " ";
}
cout << endl;
return 0;
}
বর্ণনা:
Student
স্ট্রাকচারের মধ্যে marks
নামে একটি ইন্টিজার অ্যারে ব্যবহার করা হয়েছে, যা ৫টি বিষয়ের মার্ক্স ধারণ করে।১. ডেটা গ্রুপিং: বিভিন্ন ধরনের ডেটা একত্রে সংরক্ষণ করা যায়। ২. সহজ ডেটা মডেলিং: একই ধরনের একাধিক অবজেক্ট তৈরি করা যায়, যা রিয়েল-ওয়ার্ল্ড এন্টিটির মডেলিংয়ে সহায়ক। ৩. সহজ ব্যবহার: সহজেই ফাংশনে পাস করা যায় এবং প্রোগ্রামকে আরও পরিষ্কার ও সংগঠিত রাখে।
বৈশিষ্ট্য | স্ট্রাকচার | ক্লাস |
---|---|---|
অ্যাক্সেস স্পেসিফায়ার | ডিফল্টভাবে public | ডিফল্টভাবে private |
ইনহেরিটেন্স | সাধারণত ইনহেরিটেন্স সমর্থন করে না | ইনহেরিটেন্স সমর্থন করে |
মেম্বার ফাংশন | স্ট্রাকচারে মেম্বার ফাংশন থাকতে পারে | ক্লাসে মেম্বার ফাংশন থাকে |
স্ট্রাকচার C++ এ ডেটা সংরক্ষণ ও সংগঠিত করার একটি কার্যকর উপায়, যা বড় প্রোগ্রামিং প্রকল্পে ডেটা ম্যানেজমেন্ট সহজ করে।
common.read_more